home *** CD-ROM | disk | FTP | other *** search
- .TH SCRVTR
- 6 "IRIT Version 6.0"
- .SH NAME
- SCRVTR
-
-
-
- SurfaceType SCRVTR( SurfaceType Srf, ConstType PtType, ConstType Dir )
-
- Symbolically computes the extreme curvature bound on Srf.
- If Dir is either ROW or COL, then the normal curvature square
- of Srf in Dir is computed symbolically and returned.
- Otherwise, a upper bound on the sum of the squares of the two
- principal curvatures is symbolically computed and returned.
-
- Returned value is a surface that can be evaluated to the curvature
- bound, given a UV location. The returned surface value is a scalar field
- of point type P1 (scalar rational).
- However, if PtType is one of E1, P1, E3, P3 the returned surface
- is coerced to this given type. If the types are one of E3, P3, then the
- Y and Z axes are set to be equivalent to the U and V parametric domains.
-
- This function computes the square of the normal curvature scalar
- field for surfaces as (in the U parametric direction, same for V),
- 2
- d S
- < n , --- >
- 2
- u du
- k (u, v) = ------------
- n
- dS ds
- < -- , -- >
- du du
-
- and computes the sum of the squares of the principal curvatures as,
-
- 2 2 ( g11 l22 + g22 l11 - 2 g12 l12 )^2 - 2 |G| |L|
- k + k = -----------------------------------------------
- 1 2 |G|^2 ||n||^2
-
-
- See also CCRVTR.
-
- Example:
-
- cross = cbspline( 3,
- list( ctlpt( E2, 0.0, 0.0 ),
- ctlpt( E2, 0.8, 0.0 ),
- ctlpt( E2, 0.8, 0.2 ),
- ctlpt( E2, 0.07, 1.4 ),
- ctlpt( E2, -0.07, 1.4 ),
- ctlpt( E2, -0.8, 0.2 ),
- ctlpt( E2, -0.8, 0.0 ),
- ctlpt( E2, 0.0, 0.0 ) ),
- list( KV_OPEN ) );
- cross = coerce( cross, e3 );
- s = sFromCrvs( list( cross,
- cross * trans( vector( 0.5, 0, 1 ) ),
- cross * trans( vector( 0, 0, 2 ) ) ), 3 );
- view( list( s, axes ), on );
-
- UCrvtrZXY = scrvtr( s, E3, row );
- VCrvtrZXY = scrvtr( s, E3, col );
- UCrvtrXYZ = UCrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 0.001 ) );
- VCrvtrXYZ = VCrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 10 ) );
- color( UCrvtrXYZ, red );
- color( VCrvtrXYZ, magenta );
-
- view( list( UCrvtrXYZ, VCrvtrXYZ ), off );
-
- CrvtrZXY = scrvtr( s, E3, off );
- CrvtrXYZ = CrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 0.001 ) );
- color( CrvtrXYZ, green );
-
- view( CrvtrXYZ, off );
-
- Computes the sqaure of the normal curvature in the U and V direction, flips
- its scalar value from X to Z using rotations and scale the fields to
- reasonable values and display them.
- Then, display a total bound on the normal curvature as well.
-
- Due to the large degree of the resulting fields be warned that rational
- surfaces will compute into large degree curvature bound fields. See also
- IRITSTATE("InterpProd", FALSE); for faster symbolic computation.
-